En honor al Mes del código abierto , quería escribir sobre ShlinkedIn . ShlinkedIn es una parodia de un sitio web muy popular (dejaré que el lector adivine cuál) y, según su desarrollador principal , tiene miles de usuarios. Hace aproximadamente un año llegó a la página #1 de HackerNews . Escuché por primera vez sobre ellos en un podcast británico llamado Tech Team Weekly .
Para ser completamente claro, no soy yo quien lo construyó... aunque hice algunas pequeñas contribuciones que podrían caracterizarse como una excusa para escribir esta publicación de blog. Un lector casual podría pensar que este sitio web es un proyecto paralelo casual de un ingeniero de software, y estaría en lo correcto, pero aquí hay algunas razones por las que creo que ShlinkedIn es más de lo que parece:
La pila de tecnología, que puedes encontrar en su GitHub aquí, es bastante interesante. Utiliza el Phoenix LiveView relativamente nuevo, ya que Holtz quería practicar la construcción de algo con él. El núcleo de ShlinkedIn fue este video
Esta es una demostración de lo que podría ser una red social. No hay anuncios. No hay recolección de datos. En cambio, gana dinero con un nivel de pago opcional
Critica a LinkedIn y la cultura del ajetreo que a veces parece representar. También evoluciona con la plataforma: en el lado derecho hay titulares de noticias que cualquiera puede inventar, en cada publicación hay botones de reacción que no tienen ningún sentido (como "leche" y "salsa picante"), y en todo el sitio están sobre- las mejores funciones avanzadas como la generación de NFT, las animaciones de la página de perfil y la integración de Spotify. Incluso tienen una función de IA, y pregunté en su discordia qué biblioteca estaban usando. Dijeron que estaban usando "libs locas", y me tomó un tiempo darme cuenta de que estaban bromeando.
Muchas de las ventajas del código abierto son obvias: es gratis y "vamos a jugar todos", en palabras de Linus Torvalds (sí, me sentí obligado en una publicación sobre el código abierto para citar a Linus Torvalds. En contexto, estaba teniendo una discutir con alguien sobre si permitir que las empresas usen software de código abierto para obtener ganancias). Pero también presenta una oportunidad de aprendizaje que es mucho más realista y relevante que un tutorial o, me atrevo a decir, una pregunta de LeetCode.
Cuando crea una cuenta e inicia sesión, tiene la posibilidad de publicar. Tenía curiosidad acerca de los botones y probé un par. Puede agregar emojis innecesarios a una publicación, pero no especifica cuántos. Un botón "deshacer" sería útil porque el estándar "ctl + z" no funciona aquí.
Entonces, ¿cómo lo haces? ¿Busca cómo las personas en otras aplicaciones implementan "deshacer"? ¿Tal vez solo use una estructura de datos simple, como una pila, para rastrear todos los cambios? Quizá sea mucho más sencillo… ya que estos botones no incorporan nada aleatorio, ¿por qué no utilizar unos simples contadores? Estos son los tipos de preguntas que tendría que hacerse para implementar una característica significativa, y también son el tipo de cosas que realmente haría en el campo (aunque en un proyecto mucho más grande y complicado).
…Pero mientras esperaban eso, decidí trabajar en algo completamente diferente. Había un botón de "Espaciado excesivo", pero no parecía hacer nada. Presenté un problema en su GitHub y el desarrollador aclaró que solo hacía algo si había saltos de párrafo. Esto parecía una fruta madura para demostrar que hablaba en serio.
Terminó sin ser tan complicado, pero ciertamente fue menos trivial de lo que había imaginado. Hay dos archivos escritos en JavaScript y Elixir, respectivamente, que manejan este formulario anterior. El desarrollador aclaró que Phoenix LiveView es una interfaz, pero en la superficie este proyecto parecía desafiar la dicotomía al desdibujar la interfaz y el backend. El creador de Phoenix LiveView parece corroborar algo esto en su publicación de blog: Phoenix LiveView es algo completamente diferente.
LiveView elimina capas de abstracción, porque resuelve tanto el cliente como el servidor en una sola abstracción. HTTP desaparece casi por completo. No más DESCANSO. No más JSON. Sin API, controladores, serializadores o resolutores de GraphQL. Simplemente escriba plantillas HTML y un proceso con estado las sincroniza con el navegador, actualizándolas solo cuando sea necesario. Y no hay JavaScript para escribir.
-- Fuente
Desde hace unas horas, ahora soy colaborador de ShlinkedIn. Al principio hice una alerta, pero estaba mal y no coincidía con el formato de un error similar. En cambio, decidí agregar una nueva etiqueta, distinguirla con una identificación y escribir una pequeña cantidad de JavaScript para detectar saltos de párrafo y solo agregar espacios excesivos si se alcanzaba una condición.
Probablemente no debería haber usado "var", pero por favor no se lo digas.
¿Cómo funcionan Phoenix LiveView y Elixir? Pensé que tendría que aprender mucho más sobre ellos, pero esto terminó siendo solo JavaScript. Además, ¿por qué tuve que usar JavaScript? ¿Por qué el creador de Phoenix LiveView parece argumentar que JavaScript no es necesario aquí?
¿Tengo razón en mi creencia de que Phoenix LiveView difumina la línea entre el frontend y el backend, o es incorrecto? Mucha gente en Medium argumenta que Phoenix LiveView es extremadamente eficiente, pero ¿lo es? Si es así, ¿cómo pruebo eso?
ShlinkedIn es creativo, es de código abierto y aprovecha las cosas nuevas y las ideas nuevas. También es muy divertido... incluso tiene su propia versión en el universo de The Onion .
Siga su Discord y podrá ver por primera vez cómo escalan las redes sociales. También tienen algunas discusiones menos divertidas, como si moderar un comentario racista cuando el cartel parodia de forma anónima a una persona famosa. ¿Su declaración es realmente racista o está parodiando un comentario racista?
El proyecto es nuevo e interesante, por lo que creo que merece la atención de HackerNoon.
(Si te gustó lo que leíste, considera seguirme en mi blog )